﻿// 文件使用MiniExcel源码， 使用时需遵循其 Apache License 2.0
// 修改摘要通知： 删除异步、Task等net2.0中不支持的内容，替换原先C#自带的zip处理方式，改用yacomp 进行解压缩。
using System;

namespace ExcelConfig.Utils
{
    internal static class ImageHelper
    {
        internal enum ImageFormat
        {
            bmp,
            jpg,
            gif,
            tiff,
            png,
            unknown
        }

        internal static ImageFormat GetImageFormat(byte[] bytes)
        {
            var bmp = new byte[] { (byte)'B', (byte)'M' };            // BMP
            var gif = new byte[] { (byte)'G', (byte)'I', (byte)'F' }; // GIF
            var png = new byte[] { 137, 80, 78, 71 };                 // PNG
            var tiff = new byte[] { 73, 73, 42 };                     // TIFF
            var tiff2 = new byte[] { 77, 77, 42 };                    // TIFF
            var jpeg = new byte[] { 255, 216, 255, 224 };             // jpeg
            var jpeg2 = new byte[] { 255, 216, 255, 225 };            // jpeg canon

            if (IEnumerableHelper.StartsWith(bytes, bmp))
                return ImageFormat.bmp;

            if (IEnumerableHelper.StartsWith(bytes, gif))
                return ImageFormat.gif;

            if (IEnumerableHelper.StartsWith(bytes, png))
                return ImageFormat.png;

            if (IEnumerableHelper.StartsWith(bytes, tiff))
                return ImageFormat.tiff;

            if (IEnumerableHelper.StartsWith(bytes, tiff2))
                return ImageFormat.tiff;

            if (IEnumerableHelper.StartsWith(bytes, jpeg))
                return ImageFormat.jpg;

            if (IEnumerableHelper.StartsWith(bytes, jpeg2))
                return ImageFormat.jpg;

            return ImageFormat.unknown;
        }
    }
}
